package com.shujia.day04;

public class Demo04DefineObject {
    public static void main(String[] args) {
        Student student = new Student();
//        student.name = "李国涛";
//        student.gender = "男";
//        System.out.println(student.name);
//        System.out.println(student.gender);
//        student.gender = "不知道";
//        System.out.println(student.gender);
        /*
           TODO 封装概述
                是指隐藏对象的属性和实现细节，仅对外提供公共访问方式。
            private 修饰成员(成员变量和成员方法) 对当前的变量或方法私有化
                    一旦修饰后，仅只能在当前的类中使用
            当在setAge中使用参数名和属性名称相同时，赋值失败，原因：
                1.在方法中定义的参数为局部变量，仅仅在当前方法中生效，
                2.当参数名称和属性相同时，根据就近原则，选择当前方法内的局部变量进行效用
            this => 指代当前的对象 this.可以使用属性或方法
         */
        student.setName("李国涛");
        student.setAge(18);
        student.setGender("不知道");
        student.printInfo(); // 方法可以被调用 因为该方法为public 而其中的属性虽然为私有但是，在当前对象类内调用的

        // 通过封装的方法可以对其中属性值进行获取
        System.out.println(student.getName());
        System.out.println(student.getAge());

        Phone phone = new Phone();
        phone.setNumber("183****8888");
        phone.setUser("陆玉龙");
        System.out.println(phone.getUser());
        System.out.println(phone.getNumber());

    }
}
